<?xml version="1.0" encoding="UTF-8"?>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:p="http://primefaces.org/ui">
<h:panelGrid columns="16">
    <h:outputLabel value="Grupo Empresarial" rendered="#{grupoShow}"/>
    <p:selectOneMenu id="#{ui_cmb}_grupo" rendered="#{grupoShow}" value="#{jsfBean.reporteContext.grupoEmpresarialSelect}"
                     converter="#{managerGrupoDTOConverter}" effect="fade" style="width: 150px">
        <f:selectItem itemValue="" itemLabel="Todos"/>
        <f:selectItems value="#{jsfBean.cmbGrupoReporte}"
                       var="grupo" itemLabel="#{grupo.nombre}" itemValue="#{grupo}"/>
        <p:ajax event="change" update=":messages :frmReporte:tabReport:#{ui_cmb}_sociedad"
                listener="#{jsfBean.onSelectGrupo}"/>
    </p:selectOneMenu>
    <p:spacer width="30px"/>
    <h:outputLabel value="Sociedad" rendered="false"/>
    <p:selectOneMenu id="#{ui_cmb}_sociedad" value="#{jsfBean.reporteContext.sociedadSelect}" rendered="false"
                     converter="#{managerSociedadDTOConverter}" effect="fade" style="width: 150px">
        <f:selectItem itemValue="" itemLabel="Todos"/>
        <f:selectItems value="#{jsfBean.cmbSociedadReporte}"
                       var="sociedad" itemLabel="#{sociedad.nombre}" itemValue="#{sociedad}"/>
    </p:selectOneMenu>
    <p:spacer width="30px"/>
    <h:outputLabel value="Agrupación" rendered="#{agrupacionShow}"/>
    <p:selectOneMenu id="#{ui_cmb}_agrupacion" value="#{jsfBean.reporteContext.agrupacionSelect}"
                     rendered="#{agrupacionShow}" converter="#{managerAgrupacionDTOConverter}"
                     effect="fade" style="width: 150px">
        <f:selectItem itemValue="" itemLabel="Todos"/>
        <f:selectItems value="#{jsfBean.cmbAgrupacionReporte}"
                       var="agrupacion" itemLabel="#{agrupacion.nombre}" itemValue="#{agrupacion}"/>
    </p:selectOneMenu>
    <p:spacer width="30px"/>
    <h:outputLabel value="Moneda" rendered="#{monedaShow}"/>
    <p:selectOneMenu id="#{ui_cmb}_moneda" value="#{jsfBean.reporteContext.monedaSelect}"
                     rendered="#{monedaShow}" converter="#{managerTipoMonedaConverter}"
                     effect="fade" style="width: 150px">
        <f:selectItem itemValue="" itemLabel="Todos"/>
        <f:selectItems value="#{jsfBean.cmbMonedaReporte}"
                       var="moneda" itemLabel="#{moneda.nombre}" itemValue="#{moneda}"/>
    </p:selectOneMenu>
    <p:spacer width="30px"/>
    <h:outputLabel value="Usuario" rendered="#{usuarioShow}"/>
    <p:inputText id="#{ui_cmb}_txt_usuario" rendered="#{usuarioShow}" value="#{jsfBean.reporteContext.usuarioSelect}"
                 effect="fade" style="width: 150px">
    </p:inputText>
    <p:spacer width="30px"/>
    <h:outputLabel value="Cuenta Contable" rendered="#{cuentaContableShow}"/>
    <p:inputText id="#{ui_cmb}_txt_cuenta" rendered="#{cuentaContableShow}" value="#{jsfBean.reporteContext.cuentaContableSelect}"
                 effect="fade" style="width: 150px">
    </p:inputText>
    <p:spacer width="30px"/>
    <h:outputLabel value="Proveedor" rendered="#{proveedorShow}"/>
    <p:inputText id="#{ui_cmb}_txt_proveedor" rendered="#{proveedorShow}" value="#{jsfBean.reporteContext.proveedorSelect}"
                 effect="fade" style="width: 150px">
    </p:inputText>
    <p:spacer width="30px"/>
    <p:commandButton value="Buscar" icon="ui-icon-refresh"  process="@this,#{ui_cmb}_txt_cuenta,#{ui_cmb}_grupo,#{ui_cmb}_txt_proveedor,#{ui_cmb}_txt_usuario,#{ui_cmb}_moneda, #{ui_cmb}_agrupacion, #{ui_cmb}_sociedad"
                     actionListener="#{jsfBean.onSelectFiltro}"
                     ajax="true" update="#{ui_dtLista} :frmReporte :messages"
            />
</h:panelGrid>
<p:toolbar>
    <p:toolbarGroup align="right">
        <p:commandLink ajax="false" process="@this"
                       actionListener="#{jsfBean.printExcelReportAction}">
            <p:graphicImage value="../resources/images/newExcel.png" width="25px" height="25px"/>
            <f:attribute name="templateFile" value="#{jasperReporte}"/>
            <f:attribute name="templateType" value="xls"/>
            <f:attribute name="reportType" value="#{tipoReporte}"/>
        </p:commandLink>
        <p:commandLink ajax="false" process="@this"
                       actionListener="#{jsfBean.printExcelReportAction}">
            <p:graphicImage value="../resources/images/pdf.png" width="25px" height="25px"/>
            <f:attribute name="templateFile" value="#{jasperReporte}"/>
            <f:attribute name="templateType" value="pdf"/>
            <f:attribute name="reportType" value="#{tipoReporte}"/>
        </p:commandLink>
    </p:toolbarGroup>
</p:toolbar>
<p:dataTable id="#{ui_dtLista}" value="#{data_reporte}"
             var="item" rowKey="#{item.id}"
             rows="10" paginator="true"
             paginatorPosition="bottom" emptyMessage="No existen registros"
             paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
             rowsPerPageTemplate="5,10,25,50">
    <p:columnGroup type="header">
        <p:row>
            <p:column headerText="" style="text-align:right"/>
            <p:column headerText="Totales: " style="text-align:right"/>
            <p:column headerText="" style="text-align:right" rendered="#{agrupacionShow}"/>
            <p:column headerText="" style="text-align:right" rendered="#{monedaShow}"/>
            <p:column styleClass="columnRightTopClass">
                <f:facet name="header">
                    <h:outputText value="#{totalBean.totalAnno1}">
                        <f:convertNumber pattern="###,###,##0.000"/>
                    </h:outputText>
                </f:facet>
            </p:column>
            <p:column styleClass="columnRightTopClass" >
                <f:facet name="header">
                    <h:outputText value="#{totalBean.totalAnno2}">
                        <f:convertNumber pattern="###,###,##0.000"/>
                    </h:outputText>
                </f:facet>

            </p:column>
            <p:column  styleClass="columnRightTopClass">
                <f:facet name="header">
                    <h:outputText value="#{totalBean.totalAnno3}">
                        <f:convertNumber pattern="###,###,##0.000"/>
                    </h:outputText>
                </f:facet>

            </p:column>
            <p:column styleClass="columnRightTopClass">
                <f:facet name="header">
                    <h:outputText value="#{totalBean.totalAnno4}">
                        <f:convertNumber pattern="###,###,##0.000"/>
                    </h:outputText>
                </f:facet>
            </p:column>
            <p:column styleClass="columnRightTopClass">
                <f:facet name="header">
                    <h:outputText value="#{totalBean.totalGeneral}">
                        <f:convertNumber pattern="###,###,##0.000"/>
                    </h:outputText>
                </f:facet>

            </p:column>
        </p:row>
        <p:row styleClass="columnLeftTopClass" style="min-width:100px">
            <p:column headerText="Grupo">

            </p:column>
            <p:column headerText="Sociedad">

            </p:column>
            <p:column styleClass="columnRightTopClass" style="min-width:30px">
                <f:facet name="header">
                    <h:outputText value="Hasta #{jsfBean.reporteContext.checkPoint.anno1}"/>
                </f:facet>
            </p:column>
            <p:column styleClass="columnRightTopClass" style="min-width:30px">
                <f:facet name="header">
                    <h:outputText value="#{jsfBean.reporteContext.checkPoint.anno2}"/>
                </f:facet>

            </p:column>
            <p:column styleClass="columnRightTopClass" style="min-width:30px">
                <f:facet name="header">
                    <h:outputText value="#{jsfBean.reporteContext.checkPoint.anno3}"/>
                </f:facet>
            </p:column>
            <p:column styleClass="columnRightTopClass" style="min-width:30px">
                <f:facet name="header">
                    <h:outputText value="#{jsfBean.reporteContext.checkPoint.anno4}"/>
                </f:facet>

            </p:column>
            <p:column styleClass="columnRightTopClass" style="min-width:30px">
                <f:facet name="header">
                    <h:outputText value="Total General"/>
                </f:facet>
            </p:column>
        </p:row>
    </p:columnGroup>
    <p:subTable var="detalle" value="#{item.detalle}">
        <f:facet name="header"  >
            #{item.entidad}
        </f:facet>
        <p:column styleClass="columnLeftTopClass" style="min-width:100px">
            <h:outputText value="#{detalle.entidadDetalle}"/>
        </p:column>
        <p:column styleClass="columnLeftTopClass" style="min-width:100px">
            <f:facet name="header">
                <h:outputText value="Sociedad"/>
            </f:facet>
            <h:outputText value="#{detalle.sociedadNombre}"/>
        </p:column>
        <p:column styleClass="columnRightTopClass" style="min-width:30px">
            <f:facet name="header">
                <h:outputText value="Hasta #{jsfBean.reporteContext.checkPoint.anno1}"/>
            </f:facet>
            <p:commandLink actionListener="#{jsfBean.onDetalleItemCuenta}" ajax="true"
                           update=":detalleItem">
                <h:outputText value="#{detalle.anno1}">
                    <f:convertNumber pattern="###,###,##0.000"/>
                </h:outputText>
                <f:attribute name="anno" value="#{jsfBean.reporteContext.checkPoint.anno1}"/>
                <f:attribute name="sociedadId" value="#{detalle.sociedadId}"/>
                <f:attribute name="checkPointId" value="#{detalle.checkPointId}"/>
                <f:attribute name="usuario" value="#{detalle.usuario}"/>
                <f:attribute name="grupo" value="#{detalle.entidad}"/>
                <f:attribute name="codigoMoneda" value="#{detalle.codigoMoneda}"/>
                <f:attribute name="cuentaContableId" value="#{detalle.cuentaContableId}"/>
                <f:attribute name="acreedorId" value="#{detalle.acreedorId}"/>
                <f:attribute name="agrupacionId" value="#{detalle.agrupacionId}"/>
                <f:attribute name="tipoReporte" value="#{tipoReporte}"/>
            </p:commandLink>
        </p:column>
        <p:column styleClass="columnRightTopClass" style="min-width:30px">
            <f:facet name="header">
                <h:outputText value="#{jsfBean.reporteContext.checkPoint.anno2}"/>
            </f:facet>

            <p:commandLink actionListener="#{jsfBean.onDetalleItemCuenta}" ajax="true"
                           update=":detalleItem">
                <h:outputText value="#{detalle.anno2}">
                    <f:convertNumber pattern="###,###,##0.000"/>
                </h:outputText>
                <f:attribute name="anno" value="#{jsfBean.reporteContext.checkPoint.anno2}"/>
                <f:attribute name="sociedadId" value="#{detalle.sociedadId}"/>
                <f:attribute name="checkPointId" value="#{detalle.checkPointId}"/>
                <f:attribute name="grupo" value="#{detalle.entidad}"/>
                <f:attribute name="codigoMoneda" value="#{detalle.codigoMoneda}"/>
                <f:attribute name="usuario" value="#{detalle.usuario}"/>
                <f:attribute name="cuentaContableId" value="#{detalle.cuentaContableId}"/>
                <f:attribute name="agrupacionId" value="#{detalle.agrupacionId}"/>
                <f:attribute name="acreedorId" value="#{detalle.acreedorId}"/>
                <f:attribute name="tipoReporte" value="#{tipoReporte}"/>
            </p:commandLink>
        </p:column>
        <p:column styleClass="columnRightTopClass" style="min-width:30px">
            <f:facet name="header">
                <h:outputText value="#{jsfBean.reporteContext.checkPoint.anno3}"/>
            </f:facet>
            <p:commandLink actionListener="#{jsfBean.onDetalleItemCuenta}" ajax="true"
                           update=":detalleItem">
                <h:outputText value="#{detalle.anno3}">
                    <f:convertNumber pattern="###,###,##0.000"/>
                </h:outputText>
                <f:attribute name="anno" value="#{jsfBean.reporteContext.checkPoint.anno3}"/>
                <f:attribute name="sociedadId" value="#{detalle.sociedadId}"/>
                <f:attribute name="checkPointId" value="#{detalle.checkPointId}"/>
                <f:attribute name="grupo" value="#{detalle.entidad}"/>
                <f:attribute name="usuario" value="#{detalle.usuario}"/>
                <f:attribute name="codigoMoneda" value="#{detalle.codigoMoneda}"/>

                <f:attribute name="cuentaContableId" value="#{detalle.cuentaContableId}"/>
                <f:attribute name="acreedorId" value="#{detalle.acreedorId}"/>
                <f:attribute name="agrupacionId" value="#{detalle.agrupacionId}"/>
                <f:attribute name="tipoReporte" value="#{tipoReporte}"/>
            </p:commandLink>
        </p:column>
        <p:column styleClass="columnRightTopClass" style="min-width:30px">
            <f:facet name="header">
                <h:outputText value="#{jsfBean.reporteContext.checkPoint.anno4}"/>
            </f:facet>

            <p:commandLink actionListener="#{jsfBean.onDetalleItemCuenta}" ajax="true"
                           update=":detalleItem">
                <h:outputText value="#{detalle.anno4}">
                    <f:convertNumber pattern="###,###,##0.000"/>
                </h:outputText>
                <f:attribute name="anno" value="#{jsfBean.reporteContext.checkPoint.anno4}"/>
                <f:attribute name="sociedadId" value="#{detalle.sociedadId}"/>
                <f:attribute name="checkPointId" value="#{detalle.checkPointId}"/>
                <f:attribute name="grupo" value="#{detalle.entidad}"/>
                <f:attribute name="usuario" value="#{detalle.usuario}"/>
                <f:attribute name="codigoMoneda" value="#{detalle.codigoMoneda}"/>
                <f:attribute name="cuentaContableId" value="#{detalle.cuentaContableId}"/>
                <f:attribute name="acreedorId" value="#{detalle.acreedorId}"/>
                <f:attribute name="agrupacionId" value="#{detalle.agrupacionId}"/>
                <f:attribute name="tipoReporte" value="#{tipoReporte}"/>
            </p:commandLink>
        </p:column>
        <p:column styleClass="columnRightTopClass" style="min-width:30px">
            <f:facet name="header">
                <h:outputText value="Total General"/>
            </f:facet>
            <p:commandLink actionListener="#{jsfBean.onDetalleItemCuenta}" ajax="true"
                           update=":detalleItem">
                <h:outputText value="#{detalle.totalGeneral}">
                    <f:convertNumber pattern="###,###,##0.000"/>
                </h:outputText>
                <f:attribute name="sociedadId" value="#{detalle.sociedadId}"/>
                <f:attribute name="checkPointId" value="#{detalle.checkPointId}"/>
                <f:attribute name="grupo" value="#{detalle.entidad}"/>
                <f:attribute name="usuario" value="#{detalle.usuario}"/>
                <f:attribute name="codigoMoneda" value="#{detalle.codigoMoneda}"/>
                <f:attribute name="cuentaContableId" value="#{detalle.cuentaContableId}"/>
                <f:attribute name="acreedorId" value="#{detalle.acreedorId}"/>
                <f:attribute name="agrupacionId" value="#{detalle.agrupacionId}"/>
                <f:attribute name="tipoReporte" value="#{tipoReporte}"/>
            </p:commandLink>
        </p:column>
    </p:subTable>


</p:dataTable>

</ui:composition>
